Skip to Content

1. 基础核心概念 (Fundamental Core Concepts)

英文术语 (English Term)中文翻译 (Chinese Translation)解释 (Explanation)
Declaration声明告诉编译器一个变量、函数或类型的存在,但没有分配内存或提供实现。例如 extern int a;void func();
Definition定义为一个变量分配内存或为一个函数提供具体实现。一个实体只能被定义一次(ODR原则)。例如 int a = 10;void func() { ... }
Initialization初始化在定义变量时为其赋予一个初始值。
Assignment赋值在变量已经存在后,改变它的值。
Scope作用域一个标识符(变量名、函数名等)在代码中有效的区域。例如,局部作用域、全局作用域、类作用域。
Lifetime生命周期一个对象从被创建(分配内存)到被销毁(释放内存)的整个时间段。
Lvalue / Rvalue左值 / 右值左值 (Lvalue) 是指一个可以被取地址并可以被赋值的表达式,通常是具名对象。右值 (Rvalue) 是指一个不能被取地址的临时值或字面量。这个概念在移动语义中至关重要。
Undefined Behavior (UB)未定义行为指C++标准没有规定其行为的代码。例如,访问数组越界、解引用空指针。一旦发生UB,程序可能崩溃,也可能看似正常运行,结果完全不可预测。
Const Correctness常量正确性一种编程实践,指恰当并一致地使用 const 关键字来保护数据不被意外修改,提高代码的健壮性和可读性。

2. 面向对象编程 (Object-Oriented Programming - OOP)

英文术语 (English Term)中文翻译 (Chinese Translation)解释 (Explanation)
Class定义一种新类型的蓝图,描述了该类型的数据(成员变量)和可以对这些数据进行的操作(成员函数)。
Object / Instance对象 / 实例类的一个具体实体。通过类创建出来的变量。
Member Variable / Data Member成员变量 / 数据成员在类定义中声明的变量,属于类的每个对象。
Member Function / Method成员函数 / 方法在类定义中声明的函数,用于操作类的成员变量。
Constructor构造函数一种特殊的成员函数,在创建类的对象时自动调用,用于初始化对象。
Destructor析构函数一种特殊的成员函数,在对象生命周期结束时自动调用,用于释放资源。
Encapsulation封装将数据(成员变量)和操作数据的代码(成员函数)捆绑在一起,并对外部隐藏对象的内部实现细节。通过 public, private, protected 访问修饰符实现。
Inheritance继承一个类(派生类)可以获取另一个类(基类)的属性和方法。实现了代码复用和 “is-a”(是一个)关系。
Polymorphism多态“一种接口,多种形态”。允许使用基类的指针或引用来调用派生类的同名函数,从而实现不同的行为。主要通过虚函数(Virtual Function)实现。
Virtual Function虚函数在基类中使用 virtual 关键字声明的函数。它允许在派生类中被重写(Override),是实现运行时多态的关键。
Abstraction抽象只向外界展示事物的必要属性和行为,隐藏其复杂的实现细节。类本身就是一种抽象。

3. 内存管理 (Memory Management)

英文术语 (English Term)中文翻译 (Chinese Translation)解释 (Explanation)
Stack一块内存区域,用于存储局部变量、函数参数和返回地址。由编译器自动管理,后进先出(LIFO)。
Heap一块内存区域,用于动态内存分配(使用 new)。程序员必须手动管理其生命周期(使用 delete),否则会导致内存泄漏。
Pointer指针一个存储内存地址的变量。
Reference引用一个已存在对象的别名。它必须在声明时初始化,并且一旦绑定就不能再引用其他对象。
Dynamic Memory Allocation动态内存分配在程序运行时根据需要从堆上请求内存。
Smart Pointer智能指针行为像指针的类对象,但能自动管理所指向的内存。是现代C++中管理动态内存的首选方式,可以有效避免内存泄漏。主要有 std::unique_ptr, std::shared_ptr, std::weak_ptr

4. 模板与泛型编程 (Templates & Generic Programming)

英文术语 (English Term)中文翻译 (Chinese Translation)解释 (Explanation)
Template模板C++的一种特性,允许编写与类型无关的代码。分为函数模板和类模板。
Generic Programming泛型编程一种编程范式,旨在编写不依赖于任何具体类型的、可重用的算法和数据结构。模板是C++实现泛型编程的主要工具。
Instantiation实例化编译器根据模板和给定的具体类型(例如 intstd::string)生成实际的类或函数代码的过程。
Template Metaprogramming (TMP)模板元编程一种利用C++模板在编译期进行计算的技术。代码的执行发生在编译阶段,而不是运行阶段。

5. 标准库 (The Standard Library)

英文术语 (English Term)中文翻译 (Chinese Translation)解释 (Explanation)
Standard Template Library (STL)标准模板库C++标准库的核心部分,包含一系列通用的容器、迭代器、算法和函数对象。
Container容器用于存储数据的对象。例如 std::vector (动态数组), std::list (双向链表), std::map (键值对集合), std::set (唯一元素集合)。
Iterator迭代器一种行为类似指针的对象,用于遍历容器中的元素。是连接容器和算法的桥梁。
Algorithm算法一系列用于处理数据序列的函数模板。例如 std::sort (排序), std::find (查找), std::copy (复制)。

6. 现代 C++ 特性与范式 (Modern C++ Features & Paradigms)

英文术语 (English Term)中文翻译 (Chinese Translation)解释 (Explanation)
RAII (Resource Acquisition Is Initialization)资源获取即初始化C++最核心的编程范式之一。通过将资源的生命周期与对象的生命周期绑定,利用栈对象的自动销毁(调用析构函数)来确保资源(如内存、文件句柄、锁)被正确释放。
Move Semantics移动语义C++11引入的特性,允许将资源从一个对象“移动”到另一个对象,而不是进行昂贵的拷贝。通过右值引用 && 实现。
Lambda ExpressionLambda 表达式一种在代码中就地定义匿名函数对象的便捷方式。
Concurrency并发指程序的不同部分可以乱序或并行执行。C++11开始在标准库中提供了 std::thread, std::mutex, std::atomic 等工具来支持并发编程。
SFINAE (Substitution Failure Is Not An Error)替换失败并非错误C++模板元编程中的一个重要原则。指在模板实例化过程中,如果某个重载的模板参数替换失败,编译器不会报错,而是简单地忽略这个重载,继续寻找其他匹配的模板。

7. 编译与链接 (Compilation & Linking)

英文术语 (English Term)中文翻译 (Chinese Translation)解释 (Explanation)
Preprocessor预处理器在正式编译前处理源代码的程序。主要处理以 # 开头的指令,如 #include, #define, #if 等。
Compiler编译器将预处理后的C++源代码翻译成特定机器的汇编代码或目标文件(Object File)。
Linker链接器将一个或多个目标文件以及所需的库文件组合起来,生成最终的可执行文件。
Translation Unit翻译单元一个 .cpp 源文件经过预处理器处理后得到的输出。是编译器进行编译的基本单位。
One Definition Rule (ODR)单一定义规则C++中的一条核心规则,要求在整个程序中,任何变量、函数、类类型等实体都只能有一个定义。
Last updated on